package com.fmm.medium;

public class GuessNumberGame {

    /**
     * @param secret 秘密数字
     * @param guess  猜测的数字
     * @return 几 A 几 B
     */
    public static String getHint(String secret, String guess) {
        char[] sArray = secret.toCharArray();
        char[] gArray = guess.toCharArray();
        // 记录 secret 中数字的出现次数
        int[] sc = new int[10];
        // 记录 guess 中数字出现的次数
        int[] gc = new int[10];

        // 统计 A 的个数
        int aNum = 0;
        // 统计 A + B 的个数
        int abNum = 0;
        for (int i = 0; i < sArray.length; i++) {
            // 如果相等，A 的个数加 1
            if (sArray[i] == gArray[i]) {
                aNum++;
            }
            // 构建辅助数组
            sc[sArray[i] - '0']++;
            gc[gArray[i] - '0']++;
        }
        // 统计出 A + B 的个数
        for (int i = 0; i < sc.length; i++) {
            abNum += Math.min(sc[i], gc[i]);
        }
        return aNum + "A" + (abNum - aNum) + "B";
    }
}
